File manager - Edit - /home/autoph/public_html/projects/tickets-autohub/app/Http/Controllers/TaskController.php
Back
<?php namespace App\Http\Controllers; use App\Models\Role; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Silber\Bouncer\BouncerFacade as Bouncer; use Silber\Bouncer\Database\Role as Roles; use Illuminate\Support\Facades\Gate; class TaskController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ private $user, $auth; public function __construct() { $this->user = new User; $this->auth = new AuthenticationController; } public function index() { // dd(auth()->user()->getAllPermissions()); // Bouncer::allow($admin)->to($create_ticket); if($this->auth->checkMaintenance() == "true"){ abort(503); } return view('layouts.authentication.admin.task.index') ->with(['title_page'=>"Task Monitoring"]); } public function listSupport(Request $request){ // dd($request->search['value']); $com_dealer_access = DB::table('user_company_dealer_access') ->where('employee_id',Auth::user()->asa_id) ->orWhere('user_id',Auth::user()->id) ->first(); // dd($com_dealer_access); // $dealer_access_id_array = []; $dealer_access_code_array = []; if ($com_dealer_access) { // Decode the JSON data // $dealer_ids = json_decode($com_dealer_access->dealer_id, true); $dealer_codes = json_decode($com_dealer_access->dealer_code, true); // dd($dealer_codes); // Check if $dealer_ids is an array if (is_array($dealer_codes)) { foreach ($dealer_codes as $dealer_code) { $dealer_access_code_array =array_merge($dealer_access_code_array,$dealer_code); } } } $searchKeyword = $request->search['value'] ?? ''; $searchType = $request->search_type ?? ''; $orderColumnIndex = $request->order[0]['column']; $orderDir = $request->order[0]['dir']; $orderColumn = $request->columns[$orderColumnIndex]['data']; $limit = $request->length; $offset = $request->start; // Define the base query $query = DB::table('users as support') ->select( 'support.id as support_id', 'support.asa_id', DB::raw("REPLACE(support.f_name, 'ñ', 'ñ') as f_name"), DB::raw("REPLACE(support.l_name, 'ñ', 'ñ') as l_name"), 'support.position', DB::raw('support_dealer.dealer_name as support_dealer'), 'roles.name as role', 'ticket_user.tix_id', 'ticket.ticket_no', 'ticket_user.status', 'ticket.created_at', 'ticket.level', 'ticket.description', DB::raw("REPLACE(sender.f_name, 'ñ', 'ñ') as sender_name"), DB::raw("REPLACE(sender.l_name, 'ñ', 'ñ') as sender_last_name"), 'sender.position as sender_position', DB::raw("DATE_FORMAT(ticket.start_date, '%Y-%m-%d %h:%i:%s %p') as start_time"), DB::raw("SEC_TO_TIME(TIMESTAMPDIFF(SECOND, ticket.start_date, NOW())) as time_lapse") ) ->leftJoin('assigned_roles', 'support.id', '=', 'assigned_roles.entity_id') ->leftJoin('roles', 'assigned_roles.role_id', '=', 'roles.id') ->leftJoin('ticket_user', function ($join) { $join->on('support.id', '=', 'ticket_user.assigned_to') ->where('ticket_user.status', '=', 'ongoing'); }) ->leftJoin('ticket', 'ticket_user.tix_id', '=', 'ticket.id') ->leftJoin('users as sender', 'ticket_user.usr_id', '=', 'sender.id') ->join('dealers as support_dealer','support.deal_code','=','support_dealer.dealer_code') ->where('support.active', 1) ->where('roles.name', 'support-access'); if($com_dealer_access->is_full_access == 0 ) { $query = $query->whereIn('support.deal_code',$dealer_access_code_array) ->where('support.department_id',Auth::user()->department_id); } if (!empty($searchKeyword)) { switch ($searchType) { case "ASA ID": $query->where('support.asa_id', 'like', '%' . $searchKeyword . '%'); break; case "Name": $query->where(function ($q) use ($searchKeyword) { $q->where(DB::raw("CONCAT(support.f_name, ' ', support.l_name)"), 'like', '%' . $searchKeyword . '%'); }); break; default: // Apply general search on f_name, l_name, and ticket number $query->where(function ($q) use ($searchKeyword) { $q->where('support.asa_id', 'like', '%' . $searchKeyword . '%') ->orWhere(DB::raw("CONCAT(support.f_name, ' ', support.l_name)"), 'like', '%' . $searchKeyword . '%') ->orWhere('ticket.ticket_no', 'like', '%' . $searchKeyword . '%'); }); break; } } // Apply ordering and pagination // $query->orderBy($orderColumn, $orderDir) $query =$query->offset($offset) ->limit($limit); // Execute the query $results = $query->get(); DB::enableQueryLog(); // Get the total record count (without limit) $totalRecords = DB::table('users as support') ->leftJoin('assigned_roles', 'support.id', '=', 'assigned_roles.entity_id') ->leftJoin('roles', 'assigned_roles.role_id', '=', 'roles.id') ->where('roles.name', 'support-access'); if($com_dealer_access->is_full_access == 0 ) { $totalRecords = $totalRecords->whereIn('support.deal_code',$dealer_access_code_array) ->where('support.department_id',Auth::user()->department_id); } $totalRecords = $totalRecords->count(); // dd($totalRecords); $filteredRecords = $totalRecords; // Modify this if you apply filters (e.g., search) // dd(DB::getQueryLog()); $data = []; foreach ($results as $row) { $startDate = ''; $startTime = ''; if (!is_null($row->start_time)) { $startDateTime = explode(' ', $row->start_time); $startDate = $startDateTime[0]; // Date part $startTime = $startDateTime[1] . ' ' . $startDateTime[2]; // Time part with AM/PM } $data[] = [ "id" => $row->tix_id ?? '', // Ticket ID "asa_id" => $row->asa_id, "f_name" => $row->f_name, "l_name" => $row->l_name, "position" => $row->position, "support_dealer" => $row->support_dealer, "priority" => $row->level ?? '', // Priority level "ticket_no" => $row->ticket_no ?? '', // Ticket Number "description" => $row->description ?? '', // Ticket Description "sender" => isset($row->sender_name) ? $row->sender_name . ' ' . $row->sender_last_name . ' - (' . $row->sender_position . ')' : '', "created_at" => $row->created_at ?? '', // Ticket creation date "start_date" => $startDate, // The date part "start_time" => $startTime, // The time part (e.g., 02:45:00 PM) "time_lapse" => $row->time_lapse ?? '', // Time lapse from the start ]; } // Prepare response for DataTables $result = [ 'draw' => intval($request->draw), 'recordsTotal' => $totalRecords, 'recordsFiltered' => $filteredRecords, 'data' => $data, ]; return response()->json($result); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { // } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request) { // $validate = $request->validate([ // 'id' => 'required|exists:users,id', // 'role' => 'required', // ]); // // $user = User::findOrFail($request->id); // // $role = Role::findOrFail($request->role)->where('status',1); // // $user->viber = $request->viber; // // $user->anydesk = $request->anydesk; // // $user->save(); // // $user->roles()->detach(); // Detach existing roles // // $user->roles()->attach($role); // Assign the new role to the user // // return response()->json(['message' => 'Success']); // $user = User::findOrFail($request->id); // $user->viber = $request->viber; // $user->anydesk = $request->anydesk; // $user->save(); // // Find the role // $role = Role::findOrFail($request->role); // // Ensure role has the required status // if ($role->status == 1) { // $user->roles()->detach(); // $user->roles()->attach($role->id); // } else { // return response()->json(['message' => 'Role is not active.'], 400); // } // return response()->json(['message' => 'Success']); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { // } // public function displayAllUsers(Request $request){ // $array_data['search_keyword'] = $request->search['value']; // if(empty($request->search_type)){ // $array_data['search_type'] = ""; // } else { // $array_data['search_type'] = json_decode($request->search_type,true)[0]; // } // $array_data['sort'] = $request->order[0]['dir']; // $array_data['order'] = $request->columns[$request->order[0]['column']]['data']; // $array_data['offset'] = $request->start; // $array_data['limit'] = $request->length; // $array_data['offset_limit'] = " LIMIT {$array_data['offset']},{$array_data['limit']}"; // $array_data['sort'] = " ORDER BY {$array_data['order']} {$array_data['sort']} "; // $array_data['search'] = ""; // if(!empty($array_data['search_keyword'])){ // switch($array_data['search_type']){ // case "ASA ID": // $array_data['search'] = " AND `asa_id` = {$array_data['search_keyword']} "; // break; // case "Name": // $searchKeyword = $array_data['search_keyword']; // $array_data['search'] = " AND (`f_name` LIKE '%$searchKeyword%' OR `l_name` LIKE '%$searchKeyword%') "; break; // } // } // $array_data['where'] = ""; // $data = $request->data; // $results = $this->user->getUsers($array_data); // $result['data'] = array(); // foreach($results as $row){ // $result['data'][] = [ // "id" => $row->id, // "asa_id" => $row->asa_id, // "f_name" => $row->f_name, // "l_name" => $row->l_name, // ]; // } // $result['draw'] = $request->draw; // $result['recordsTotal'] = $this->user->getUsersCount($array_data)[0]->Count; // $result['recordsFiltered'] = $this->user->getUsersFilteredCount($array_data)[0]->FilteredCount; // return response()->json($result); // } // public function getUserAbilities($id){ // $user = User::with('roles.abilities')->find($id); // $roles = $user->roles; // $abilities = $user->roles->flatMap(function ($role){ // return $role->abilities->where('parent_id',"!=",null); // }); // return $user; // } // public function getAbilitiesByRole($id){ // $role = Roles::findOrFail($id); // $abilities = $role->abilities; // return response()->json($abilities); // } // public function getNotifications(){ // $dept_id = Auth::user()->department_id; // $cats = $this->user->getCategoriesNotif($dept_id); // $res = $this->processResults($cats); // return response()->json($res); // } // public function processResults($cats){ // $result = []; // foreach($cats as $item){ // $result[] = [ // $item->title // ]; // } // return $result; // } }
| ver. 1.4 |
.
| PHP 8.1.32 | Generation time: 0.09 |
proxy
|
phpinfo
|
Settings